package com.gitee.swsk33.algorithms.tree.binarytree;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * 二叉树的结点
 *
 * @param <T> 结点数据类型
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class TreeNode<T> {

	/**
	 * 结点值
	 */
	private T data;

	/**
	 * 结点左孩子
	 */
	private TreeNode<T> left;

	/**
	 * 结点右孩子
	 */
	private TreeNode<T> right;

	/**
	 * 结点双亲
	 */
	private TreeNode<T> parent;

	/**
	 * 以一个值初始化个二叉树节点，左右孩子为空
	 *
	 * @param data 节点值
	 */
	public TreeNode(T data) {
		this.data = data;
	}

}